#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;//创建控件对象
    w.show();//显示
    return a.exec();//执行
}
//总结
//1、认识QLabel类，此类可以在界面上显示字符串，通过此类的setText(QString对象)接口来设置字符串
//Qt把C++里的很多容器类，都进行了重新封装

//2、内存泄漏、文件资源泄露

//3、对象树
//Qt中通过对象树，来统一释放界面的控件对象
//Qt中推荐使用new的方式在堆上进行创建对象，通过对象树来统一释放对象
//创建控件对象的时候，在Widget类的构造函数中进行指定父对象，此时本控件对象才会被挂到对象树上
//如果此控件对象没有被挂到对象树上，要进行手动释放

//4、通过继承自Qt内置的类，就可以达到对现有控件进行功能扩展的效果
//Qt内置的QLabel类，没办法看到被挂到对象树上的控件对象销毁的过程
//为了看清楚此过程，就创建mylabel类继承自QLabel类对此mylabel类进行重写析构函数
//在析构函数中，加上日志输出，就可以直接观察到QLabel对象的释放过程了
//也可以重写控件对象的其他功能，进行查看，不仅仅是析构函数，继承是为了达到功能扩展目的

//面向对象"继承",本质上是对现有的代码进行的"扩展"
//因为mylabel这个类继承了QLabel类，所以才能使用这个QLabel类的设置字符串内容的setText()接口
//才能在QWidget界面上显示控件

//5、乱码问题 和 字符集
//最常见的乱码问题出现在mysql中

//6、如何在Qt中打印日志作为调试信息
//cout没有很好的处理字符编码问题，也不方便统一进行日志的关闭
//Qt中推荐使用dDebug()工具完成对日志的打印和统一打开或关闭日志

//调试可以使用调试器和日志的方式进行调试
//调试本质上都是要观察程序执行的中间过程和中间结果
//日志调试更加大众，调试器具有局限性，两者配合使用即可


















